<?php

require_once("dao/Dao.php");

/**
 * DAO de l'objet offre vendue.
 *
 * @author Ludovic
*/
class OffreVenteDao extends Dao{

	protected static $tableName = "ve_offre_mobile";
	
	protected static $tableNameOptions = "ve_option_mobile";

	
	/**
	 * Suppression d'une offre
	 */
	public static function delete($id){
		global $bdd, $logger;

		$logger->info("Suppression de l'offre : " + $id);

		// Suppression de l'offre
		$requete = $bdd->prepare("DELETE FROM ".OffreVenteDao::$tableName." WHERE id ='".$id."' ");
		if ($requete->execute()){

			if ($requete->execute()){
				// La suppression c'est correctement réalisée.
				return true;
			}
		}
		$logger->error("Erreur lors de la suppression de l'offre : " + $id);

		// La suppression a produit une erreur
		return false;
	}
	
	/**
	 * Suppression d'une options
	 */
	public static function deleteOptions($id){
		global $bdd, $logger;

		$logger->info("Suppression de l'offre : " + $id);

		// Suppression de l'offre
		$requete = $bdd->prepare("DELETE FROM ".OffreVenteDao::$tableNameOptions." WHERE id ='".$id."' ");
		if ($requete->execute()){

			if ($requete->execute()){
				// La suppression c'est correctement réalisée.
				return true;
			}
		}
		$logger->error("Erreur lors de la suppression de l'offre : " + $id);

		// La suppression a produit une erreur
		return false;
	}

	/**
	 * Recherche des offres
	 */
	public static function getAll(){
		return parent::find(OffreVenteDao::$tableName);
	}
	
	/**
	 * Recherche par id offre commercial
	 */
	public static function searchByIdOffre($id){
		return parent::find(OffreVenteDao::$tableName, "id='".$id."'");
	}
	
	/**
	 * Recherche des options
	 */
	public static function getAllOptions(){
		return parent::find(OffreVenteDao::$tableNameOptions);
	}
	
	/**
	 * Recherche des offres par code article
	 */
	public static function searchByCodeArticle($code_article){
		return parent::find(OffreVenteDao::$tableName, "code_article='%".$code_article."%' OR nom LIKE '%".$code_article."%'");
	}
	
	/**
	 * Recherche des options par code article
	 */
	public static function searchByCodeOptions($code_article){
		return parent::find(OffreVenteDao::$tableNameOptions, "code_article='%".$code_article."%' OR nom LIKE '%".$code_article."%'");
	}

	/**
	 * Recherche des offres par id offre ve
	 */
	public static function searchById($id){
		return parent::find(OffreVenteDao::$tableName, "id='".$id."'");
	}
	
	/**
	 * Recherche des options par id
	 */
	public static function searchByIdOptions($id){
		return parent::find(OffreVenteDao::$tableNameOptions, "id='".$id."'");
	}

	/**
	 * Update offre
	 */
	public static function update($id,$code_achat,$code_article,$nom,$temps,$sms,$data,$pv0m_prix_seul,$pv0m_avec_equipement,$jours,$horaires,$pv12m_prix_seul,$pv12m_avec_equipement,$pv24m_prix_seul,$pv24m_avec_equipement,$pv36m_prix_seul,$pv36m_avec_equipement,$tarif_telephone)
	{
		return parent::exec("UPDATE `".OffreVenteDao::$tableName."` SET id_offre_ha='".$code_achat."', code_article='".$code_article."', nom='".$nom."', temps='".$temps."', sms='".$sms."', data='".$data."', pv0m_prix_seul='".$pv0m_prix_seul."', pv0m_avec_equipement='".$pv0m_avec_equipement."', jours='".$jours."', horaires='".$horaires."', pv12m_prix_seul='".$pv12m_prix_seul."', pv12m_avec_equipement='".$pv12m_avec_equipement."', pv24m_prix_seul='".$pv24m_prix_seul."', pv24m_avec_equipement='".$pv24m_avec_equipement."', pv36m_prix_seul='".$pv36m_prix_seul."', pv36m_avec_equipement='".$pv36m_avec_equipement."', tarif_telephone='".$tarif_telephone."' WHERE id='".$id."' " );
	}
	
	/**
	 * Update options
	 */
	public static function updateOptions($id,$code_achat,$code_article,$nom,$temps,$sms,$data,$bb,$international,$prix_seul,$prix_avec_equipement,$famille){
		return parent::exec("UPDATE `".OffreVenteDao::$tableNameOptions."` SET id_option_ha='".$code_achat."', code_article='".$code_article."', nom='".$nom."', temps='".$temps."', sms='".$sms."', data='".$data."', bb='".$bb."', international='".$international."', prix_seul='".$prix_seul."', prix_avec_equipement='".$prix_avec_equipement."', famille='".$famille."'  WHERE id=".$id."" );
	}

	/**
	 * detail offre fixe
	 */
	public static function searchByOffreFixe($id){
		return parent::query(OffreVenteDao::$tableName, "id='".$id."'");
	}

	/**
	 * Retourne toutes les offres mobiles
	 */
	public static function getOffresMobile(){
		return parent::find("ve_offre_mobile");
	}
	
	/**
	 * Retourne toutes les options mobiles
	 */
	public static function getOptionsMobile(){
		return parent::find("ve_option_mobile");
	}
	
	/**
	 * Retourne tous les terminaux mobile
	 */
	public static function getTerminaux(){
		return parent::find("vente_terminal_mobile");
	}
	
	/**
	 * Liste complète des equipements fixe
	 */
	public static function getEquipement(){
		return parent::find("vente_terminal_fixe");
	}
	
	/**
	 * Liste complète des equipements Adsl
	 */
	public static function getEquipementAdsl(){
		return parent::find("vente_terminal_xdsl");
	}
	
	
	
	/**
	 * Retourne toutes les offres voip
	 */
	public static function getOffresVoip(){
		return parent::find("ve_offre_voip");
	}
	
	/**
	 * Retourne toutes les offres vga
	 */
	public static function getOffresVga(){
		return parent::find("ve_offre_vga");
	}


	/**
	 * Retourne toutes les offres internet
	 */
	public static function getOffresAdsl(){
		return parent::query("SELECT * FROM `ve_offre_fixe` WHERE type = 'xdsl' ");
	}
	
}



